home *** CD-ROM | disk | FTP | other *** search
- NOINTS = 1 ; Turn off interrupts
- DTIME = 0 ; Display rastertime
- NSTARS = 880 ; Number of stars
- PFACT = $FF00 ; Perspective factor
- ZSPEED = -1 ; Speed of Z-movement
- BUFW = 44 ; Buffer width in bytes
- BUFH = 272 ; Buffer height in lines
- BOXW = 44 ; Starfield width in bytes
- BOXH = 272 ; Starfield height in lines
- _LVODisable = -120 ; exec.library function offsets
- _LVOEnable = -126
- _LVOCloseLibrary = -414
- _LVOOpenLibrary = -552
- _LVOLoadView = -222 ; grapics.library function offsets
- _LVOWaitBlit = -228
- _LVOWaitTOF = -270
- _LVOOwnBlitter = -456
- _LVODisownBlitter = -462
- ib_ViewLord = 34 ; System structures attributes
- gb_copinit = 38
- ExecBas = $00000004
- CustomBas = $00DFF000
- CIAA = $00BFE001
-
- VHPOSR = $006 ; Custom registers
- BLTCON0 = $040
- BLTDPTH = $054
- BLTSIZE = $058
- BLTDMOD = $066
- COP1LCH = $080
- COPJMP1 = $088
- COLOR00 = $180
-
- ;-------------------------------------------------------------------------
- ; MACROS
- ;-------------------------------------------------------------------------
-
- CALL: MACRO ; Call a library function
- move.l \1Bas,a6
- jsr _LVO\2(a6)
- ENDM
-
- RND: MACRO ; Construct a 'random' byte in d0
- move.b (a1),d0
- move.b (a2),d1
- move.b (a3),d2
- eor.b d2,d0
- eor.b d1,d0
- add.b d0,(a3) ; Remove one or both of these
- add.b d7,d0 ; for 'constellations' of stars
- ENDM
-
- ;-------------------------------------------------------------------------
- ; PROGRAM START
- ;-------------------------------------------------------------------------
-
- SECTION Code,CODE
-
- StartProgram:
-
- lea GfxName,a1 ;Open graphics.library
- moveq #0,d0
- CALL Exec,OpenLibrary
- move.l d0,GfxBas
- beq.w .Exit
-
- lea IntName,a1 ; Open intuition.library
- moveq #0,d0
- CALL Exec,OpenLibrary
- move.l d0,IntBas
- beq.w .Exit
-
- sub.l a1,a1 ; Grab display
- CALL Gfx,LoadView
- CALL Gfx,WaitTOF
- CALL Gfx,WaitTOF
-
- CALL Gfx,OwnBlitter ; Grab blitter
- CALL Gfx,WaitBlit
-
- IFNE NOINTS
- CALL Exec,Disable ; Disable interrupts
- ENDC
-
- bsr Initialization
- bsr MainLoop
-
- IFNE NOINTS
- CALL Exec,Enable ; Enable interrupts
- ENDC
-
- CALL Gfx,DisownBlitter ; Free blitter
-
- move.l IntBas,a0 ; Restore display
- lea ib_ViewLord(a0),a1
- CALL Gfx,LoadView
- CALL Gfx,WaitTOF
- CALL Gfx,WaitTOF
- lea CustomBas,a0
- move.l GfxBas,a6
- move.l gb_copinit(a6),COP1LCH(a0)
- move.w #0,COPJMP1(a0)
-
- .Exit: move.l IntBas,a1 ; Close intuition.library
- cmp.l #0,a1
- beq.s .NoInt
- CALL Exec,CloseLibrary
-
- .NoInt: move.l GfxBas,a1 ; Close graphics.library
- cmp.l #0,a1
- beq.s .NoGfx
- CALL Exec,CloseLibrary
-
- .NoGfx: moveq #0,d0 ; Exit program
- rts
-
- ;-------------------------------------------------------------------------
- ; MAINLOOP
- ;-------------------------------------------------------------------------
-
- MainLoop:
-
- lea CustomBas,a0 ; Wait for line 255
- .Wait: cmp.b #255,VHPOSR(a0)
- bne.s .Wait
-
- IFNE DTIME
- move.w #$336,CustomBas+COLOR00
- ENDC
-
- bsr DrawStars
-
- IFNE DTIME
- move.w #$000,CustomBas+COLOR00
- ENDC
-
- btst #6,CIAA ; Loop until LMB is pressed
- bne.s MainLoop
- rts
-
- ;-------------------------------------------------------------------------
- ; INITIALIZATION
- ;-------------------------------------------------------------------------
-
- Initialization:
-
- bsr InitBSS
- bsr InitCopper
- bsr InitCoords
- bsr InitPerspective
- REPT 3
- bsr StarBuffer
- bsr StarClear
- ENDR
- rts
-
- ;-------------------------------------------------------------------------
-
- InitBSS:
-
- lea Blanks,a0 ; Init BSS-sections
- move.l #(256/4)-1,d7
- .1: clr.l (a0)+
- dbf d7,.1
-
- lea StarBuffer1,a0
- lea StarBuffer2,a1
- lea StarBuffer3,a2
- move.l #(BUFW*BUFH/2)-1,d7
- .2: clr.l (a0)+
- clr.l (a1)+
- clr.l (a2)+
- dbf d7,.2
- rts
-
- ;-------------------------------------------------------------------------
-
- InitCopper:
-
- lea CopSprites+2,a0 ; Init sprite-pointers
- move.l #Blanks,d0
- move.l d0,d1
- swap d1
- moveq #7,d7
- .Loop: move.w d1,(a0)
- move.w d0,4(a0)
- addq.w #8,a0
- dbf d7,.Loop
-
- lea CopBplPtr,a0 ; Init bitplane-pointers
- move.l StarBufPtr,d0
- move.l StarBufPtr,d1
- add.l #BUFW,d1
- move.w d0,6(a0)
- move.w d1,14(a0)
- swap d0
- swap d1
- move.w d0,2(a0)
- move.w d1,10(a0)
-
- lea CustomBas,a0 ; Start new copperlist
- move.l #CopperList,COP1LCH(a0)
- move.w #0,COPJMP1(a0)
- rts
-
- ;-------------------------------------------------------------------------
-
- InitCoords: ; Randomize coordinates
-
- lea StarCoords,a0
- lea $DFF007,a1 ; Horizontal beam pos
- lea $BFD800,a2 ; Horizontal blank counter
- lea RndStore,a3
- move.w #NSTARS-1,d7
- .Loop: RND
- and.l #$FF,d0
- move.w d0,(a0)+ ; Store X-coord
- RND
- and.l #$FF,d0
- move.w d0,(a0)+ ; Store Y-coord
- RND
- lsl.l #8,d0
- and.l #$FF00,d0
- move.w d0,(a0)+ ; Store Z-coord
- dbf d7,.Loop
- rts
-
- ;-----------------------------------------------------------------------------
-
- InitPerspective: ; Calculate perspective-tables
-
- lea PerTabX,a0
- lea PerTabB,a1
- lea PerTabY,a2
- move.l #BOXW*4,a3
- move.l #BOXH/2,a4
- move.l #((BOXW*4)<<16)-1,a5
- move.l #((BOXH/2)<<16)-1,a6
- movem.l Blanks,d0-d4
- move.l #$7FFF,d5
- move.l #255,d6
- .1: moveq #0,d7
- .2: move.w d7,d3
- move.w d7,d4
- mulu #(BOXW*4)<<8,d3
- add.l d3,d3
- swap d3
- mulu #(BOXH/2)<<8,d4
- add.l d4,d4
- swap d4
- sub.w a3,d3
- muls d5,d3
- add.l d3,d3
- add.l a5,d3
- swap d3
- sub.w a4,d4
- muls d5,d4
- add.l d4,d4
- add.l a6,d4
- swap d4
- move.l d3,d0
- move.l d3,d1
- move.l d4,d2
- lsr.w #3,d0
- and.w #7,d1
- sub.w #7,d1
- neg.w d1
- mulu #BUFW*2,d2
- cmp.w #100,d6
- bgt.s .3
- add.w #BUFW,d2
- .3: add.b #(BUFW-BOXW)/2,d0
- add.w #(BUFH-BOXH)*BUFW,d2
- move.b d0,(a0)+
- move.b d1,(a1)+
- move.w d2,(a2)+
- addq.w #1,d7
- cmp.w #256,d7
- bne.s .2
- mulu #PFACT,d5
- swap d5
- and.l #$FFFF,d5
- dbf d6,.1
- rts
-
- ;-------------------------------------------------------------------------
- ; ROUTINES
- ;-----------------------------------------------------------------------------
-
- DrawStars:
-
- bsr StarBuffer
- bsr StarClear
- bsr StarMove
-
- lea PerTabX,a0 ; Perspective tables
- lea PerTabB,a1
- lea PerTabY,a2
- lea StarCoords,a3 ; Coordinates
- move.l StarBufPtr+4,a4 ; Bitplane pointer
- movem.l Blanks,d0-d7
- move.w StarAddX,d3 ; Movement offsets
- move.w StarAddY,d4
- move.w StarAddZ,d5
- move.l #$FF,d6
-
- move.w #(NSTARS/20)-1,d7
- AD SET 0
- .Loop:
- REPT 20 ; Loop only for each 20 stars
- lea (a4),a5
- movem.w AD(a3),d0-d2 ; Fetch coord (x,y,z)
- add.w d5,d2 ; Calc Z
- add.w d4,d1 ; Calc Y
- and.l d6,d1
- or.w d2,d1
- add.l d1,d1
- add.w (a2,d1.l),a5
- add.w d3,d0 ; Calc X
- and.l d6,d0
- or.w d2,d0
- move.b (a0,d0.l),d2
- and.w d6,d2
- move.b (a1,d0.l),d0 ; Calc bit
- bset d0,(a5,d2.w) ; Plot pixel
- AD SET AD+6
- ENDR
- lea 120(a3),a3
- dbf d7,.Loop
- rts
- ;-----------------------------------------------------------------------------
-
- StarClear: ; Clear a buffer with blitter
- CALL Gfx,WaitBlit
- lea CustomBas,a0
- move.l StarBufPtr+8,BLTDPTH(a0)
- move.w #0,BLTDMOD(a0)
- move.l #$01000000,BLTCON0(a0)
- move.w #BUFH*64+BUFW,BLTSIZE(a0)
- rts
-
- ;-----------------------------------------------------------------------------
-
- StarBuffer:
-
- lea StarBufPtr,a0 ; Triple buffering
- movem.l (a0),d0-d2
- exg d0,d1
- exg d1,d2
- movem.l d0-d2,(a0)
-
- lea CopBplPtr,a0 ; Update bitplane-pointers
- move.l StarBufPtr,d0
- move.l StarBufPtr,d1
- add.l #BUFW,d1
- move.w d0,6(a0)
- move.w d1,14(a0)
- swap d0
- swap d1
- move.w d0,2(a0)
- move.w d1,10(a0)
- rts
-
- ;-----------------------------------------------------------------------------
-
- StarMove: ; Move stars around
-
- lea SineTable,a0 ; Use sine in X and Y direction
- move.w SinPosX,d0
- move.w SinPosY,d1
- add.w SinSpdX,d0
- add.w SinSpdY,d1
- and.w #$FFE,d0
- and.w #$FFE,d1
- move.w d0,SinPosX
- move.w d1,SinPosY
- move.w (a0,d0.w),d0
- move.w (a0,d1.w),d1
- move.w d0,StarAddX
- move.w d1,StarAddY
- add.w #ZSPEED<<8,StarAddZ
- and.w #$FF00,StarAddZ
- rts
-
- ;-------------------------------------------------------------------------
- ; PUBLICMEM DATA
- ;-------------------------------------------------------------------------
-
- SECTION PubBSS,BSS
-
- GfxBas: ds.l 1
- IntBas: ds.l 1
- PerTabX: ds.b 256*256 ; Perspective tables
- PerTabB: ds.b 256*256
- PerTabY: ds.w 256*256
-
- ;-------------------------------------------------------------------------
- SECTION PubData,DATA
- RndStore: dc.w 0 ; Random value
-
- StarAddX: dc.w 0 ; Star movement offsets
- StarAddY: dc.w 0
- StarAddZ: dc.w 0
-
- SinPosX: dc.w 0 ; Sine positions
- SinPosY: dc.w $136
-
- SinSpdX: dc.w 4 ; Sine speeds
- SinSpdY: dc.w -2
-
- StarBufPtr: dc.l StarBuffer1 ; Buffer pointers
- dc.l StarBuffer2
- dc.l StarBuffer3
-
- StarCoords: ds.w 3*NSTARS ; Star coordinates
-
- GfxName: dc.b "graphics.library",0
- IntName: dc.b "intuition.library",0
- even
- SineTable: dc.w $0200,$0202,$0203,$0205,$0206,$0208,$0209,$020B
- dc.w $020D,$020E,$0210,$0211,$0213,$0214,$0216,$0218
- dc.w $0219,$021B,$021C,$021E,$021F,$0221,$0223,$0224
- dc.w $0226,$0227,$0229,$022A,$022C,$022D,$022F,$0231
- dc.w $0232,$0234,$0235,$0237,$0238,$023A,$023C,$023D
- dc.w $023F,$0240,$0242,$0243,$0245,$0246,$0248,$024A
- dc.w $024B,$024D,$024E,$0250,$0251,$0253,$0254,$0256
- dc.w $0258,$0259,$025B,$025C,$025E,$025F,$0261,$0262
- dc.w $0264,$0265,$0267,$0269,$026A,$026C,$026D,$026F
- dc.w $0270,$0272,$0273,$0275,$0276,$0278,$0279,$027B
- dc.w $027C,$027E,$027F,$0281,$0282,$0284,$0286,$0287
- dc.w $0289,$028A,$028C,$028D,$028F,$0290,$0292,$0293
- dc.w $0295,$0296,$0298,$0299,$029B,$029C,$029E,$029F
- dc.w $02A1,$02A2,$02A4,$02A5,$02A7,$02A8,$02AA,$02AB
- dc.w $02AC,$02AE,$02AF,$02B1,$02B2,$02B4,$02B5,$02B7
- dc.w $02B8,$02BA,$02BB,$02BD,$02BE,$02C0,$02C1,$02C2
- dc.w $02C4,$02C5,$02C7,$02C8,$02CA,$02CB,$02CD,$02CE
- dc.w $02CF,$02D1,$02D2,$02D4,$02D5,$02D7,$02D8,$02D9
- dc.w $02DB,$02DC,$02DE,$02DF,$02E1,$02E2,$02E3,$02E5
- dc.w $02E6,$02E8,$02E9,$02EA,$02EC,$02ED,$02EF,$02F0
- dc.w $02F1,$02F3,$02F4,$02F6,$02F7,$02F8,$02FA,$02FB
- dc.w $02FC,$02FE,$02FF,$0300,$0302,$0303,$0305,$0306
- dc.w $0307,$0309,$030A,$030B,$030D,$030E,$030F,$0311
- dc.w $0312,$0313,$0315,$0316,$0317,$0319,$031A,$031B
- dc.w $031C,$031E,$031F,$0320,$0322,$0323,$0324,$0326
- dc.w $0327,$0328,$0329,$032B,$032C,$032D,$032E,$0330
- dc.w $0331,$0332,$0334,$0335,$0336,$0337,$0339,$033A
- dc.w $033B,$033C,$033D,$033F,$0340,$0341,$0342,$0344
- dc.w $0345,$0346,$0347,$0348,$034A,$034B,$034C,$034D
- dc.w $034E,$0350,$0351,$0352,$0353,$0354,$0356,$0357
- dc.w $0358,$0359,$035A,$035B,$035C,$035E,$035F,$0360
- dc.w $0361,$0362,$0363,$0364,$0366,$0367,$0368,$0369
- dc.w $036A,$036B,$036C,$036D,$036E,$0370,$0371,$0372
- dc.w $0373,$0374,$0375,$0376,$0377,$0378,$0379,$037A
- dc.w $037B,$037C,$037D,$037F,$0380,$0381,$0382,$0383
- dc.w $0384,$0385,$0386,$0387,$0388,$0389,$038A,$038B
- dc.w $038C,$038D,$038E,$038F,$0390,$0391,$0392,$0393
- dc.w $0394,$0395,$0396,$0397,$0397,$0398,$0399,$039A
- dc.w $039B,$039C,$039D,$039E,$039F,$03A0,$03A1,$03A2
- dc.w $03A3,$03A4,$03A4,$03A5,$03A6,$03A7,$03A8,$03A9
- dc.w $03AA,$03AB,$03AB,$03AC,$03AD,$03AE,$03AF,$03B0
- dc.w $03B1,$03B1,$03B2,$03B3,$03B4,$03B5,$03B6,$03B6
- dc.w $03B7,$03B8,$03B9,$03BA,$03BA,$03BB,$03BC,$03BD
- dc.w $03BD,$03BE,$03BF,$03C0,$03C1,$03C1,$03C2,$03C3
- dc.w $03C4,$03C4,$03C5,$03C6,$03C6,$03C7,$03C8,$03C9
- dc.w $03C9,$03CA,$03CB,$03CB,$03CC,$03CD,$03CD,$03CE
- dc.w $03CF,$03D0,$03D0,$03D1,$03D1,$03D2,$03D3,$03D3
- dc.w $03D4,$03D5,$03D5,$03D6,$03D7,$03D7,$03D8,$03D8
- dc.w $03D9,$03DA,$03DA,$03DB,$03DB,$03DC,$03DD,$03DD
- dc.w $03DE,$03DE,$03DF,$03DF,$03E0,$03E0,$03E1,$03E2
- dc.w $03E2,$03E3,$03E3,$03E4,$03E4,$03E5,$03E5,$03E6
- dc.w $03E6,$03E7,$03E7,$03E8,$03E8,$03E9,$03E9,$03E9
- dc.w $03EA,$03EA,$03EB,$03EB,$03EC,$03EC,$03ED,$03ED
- dc.w $03ED,$03EE,$03EE,$03EF,$03EF,$03EF,$03F0,$03F0
- dc.w $03F1,$03F1,$03F1,$03F2,$03F2,$03F3,$03F3,$03F3
- dc.w $03F4,$03F4,$03F4,$03F5,$03F5,$03F5,$03F6,$03F6
- dc.w $03F6,$03F6,$03F7,$03F7,$03F7,$03F8,$03F8,$03F8
- dc.w $03F8,$03F9,$03F9,$03F9,$03F9,$03FA,$03FA,$03FA
- dc.w $03FA,$03FB,$03FB,$03FB,$03FB,$03FC,$03FC,$03FC
- dc.w $03FC,$03FC,$03FD,$03FD,$03FD,$03FD,$03FD,$03FD
- dc.w $03FE,$03FE,$03FE,$03FE,$03FE,$03FE,$03FE,$03FE
- dc.w $03FF,$03FF,$03FF,$03FF,$03FF,$03FF,$03FF,$03FF
- dc.w $03FF,$03FF,$0400,$0400,$0400,$0400,$0400,$0400
- dc.w $0400,$0400,$0400,$0400,$0400,$0400,$0400,$0400
- dc.w $0400,$0400,$0400,$0400,$0400,$0400,$0400,$0400
- dc.w $0400,$0400,$0400,$0400,$0400,$0400,$0400,$03FF
- dc.w $03FF,$03FF,$03FF,$03FF,$03FF,$03FF,$03FF,$03FF
- dc.w $03FF,$03FE,$03FE,$03FE,$03FE,$03FE,$03FE,$03FE
- dc.w $03FE,$03FD,$03FD,$03FD,$03FD,$03FD,$03FD,$03FC
- dc.w $03FC,$03FC,$03FC,$03FC,$03FB,$03FB,$03FB,$03FB
- dc.w $03FA,$03FA,$03FA,$03FA,$03F9,$03F9,$03F9,$03F9
- dc.w $03F8,$03F8,$03F8,$03F8,$03F7,$03F7,$03F7,$03F6
- dc.w $03F6,$03F6,$03F6,$03F5,$03F5,$03F5,$03F4,$03F4
- dc.w $03F4,$03F3,$03F3,$03F3,$03F2,$03F2,$03F1,$03F1
- dc.w $03F1,$03F0,$03F0,$03EF,$03EF,$03EF,$03EE,$03EE
- dc.w $03ED,$03ED,$03ED,$03EC,$03EC,$03EB,$03EB,$03EA
- dc.w $03EA,$03E9,$03E9,$03E9,$03E8,$03E8,$03E7,$03E7
- dc.w $03E6,$03E6,$03E5,$03E5,$03E4,$03E4,$03E3,$03E3
- dc.w $03E2,$03E2,$03E1,$03E0,$03E0,$03DF,$03DF,$03DE
- dc.w $03DE,$03DD,$03DD,$03DC,$03DB,$03DB,$03DA,$03DA
- dc.w $03D9,$03D8,$03D8,$03D7,$03D7,$03D6,$03D5,$03D5
- dc.w $03D4,$03D3,$03D3,$03D2,$03D1,$03D1,$03D0,$03D0
- dc.w $03CF,$03CE,$03CD,$03CD,$03CC,$03CB,$03CB,$03CA
- dc.w $03C9,$03C9,$03C8,$03C7,$03C6,$03C6,$03C5,$03C4
- dc.w $03C4,$03C3,$03C2,$03C1,$03C1,$03C0,$03BF,$03BE
- dc.w $03BD,$03BD,$03BC,$03BB,$03BA,$03BA,$03B9,$03B8
- dc.w $03B7,$03B6,$03B6,$03B5,$03B4,$03B3,$03B2,$03B1
- dc.w $03B1,$03B0,$03AF,$03AE,$03AD,$03AC,$03AB,$03AB
- dc.w $03AA,$03A9,$03A8,$03A7,$03A6,$03A5,$03A4,$03A4
- dc.w $03A3,$03A2,$03A1,$03A0,$039F,$039E,$039D,$039C
- dc.w $039B,$039A,$0399,$0398,$0397,$0397,$0396,$0395
- dc.w $0394,$0393,$0392,$0391,$0390,$038F,$038E,$038D
- dc.w $038C,$038B,$038A,$0389,$0388,$0387,$0386,$0385
- dc.w $0384,$0383,$0382,$0381,$0380,$037F,$037D,$037C
- dc.w $037B,$037A,$0379,$0378,$0377,$0376,$0375,$0374
- dc.w $0373,$0372,$0371,$0370,$036E,$036D,$036C,$036B
- dc.w $036A,$0369,$0368,$0367,$0366,$0364,$0363,$0362
- dc.w $0361,$0360,$035F,$035E,$035C,$035B,$035A,$0359
- dc.w $0358,$0357,$0356,$0354,$0353,$0352,$0351,$0350
- dc.w $034E,$034D,$034C,$034B,$034A,$0348,$0347,$0346
- dc.w $0345,$0344,$0342,$0341,$0340,$033F,$033D,$033C
- dc.w $033B,$033A,$0339,$0337,$0336,$0335,$0334,$0332
- dc.w $0331,$0330,$032E,$032D,$032C,$032B,$0329,$0328
- dc.w $0327,$0326,$0324,$0323,$0322,$0320,$031F,$031E
- dc.w $031C,$031B,$031A,$0319,$0317,$0316,$0315,$0313
- dc.w $0312,$0311,$030F,$030E,$030D,$030B,$030A,$0309
- dc.w $0307,$0306,$0305,$0303,$0302,$0300,$02FF,$02FE
- dc.w $02FC,$02FB,$02FA,$02F8,$02F7,$02F5,$02F4,$02F3
- dc.w $02F1,$02F0,$02EF,$02ED,$02EC,$02EA,$02E9,$02E8
- dc.w $02E6,$02E5,$02E3,$02E2,$02E1,$02DF,$02DE,$02DC
- dc.w $02DB,$02D9,$02D8,$02D7,$02D5,$02D4,$02D2,$02D1
- dc.w $02CF,$02CE,$02CD,$02CB,$02CA,$02C8,$02C7,$02C5
- dc.w $02C4,$02C2,$02C1,$02C0,$02BE,$02BD,$02BB,$02BA
- dc.w $02B8,$02B7,$02B5,$02B4,$02B2,$02B1,$02AF,$02AE
- dc.w $02AC,$02AB,$02AA,$02A8,$02A7,$02A5,$02A4,$02A2
- dc.w $02A1,$029F,$029E,$029C,$029B,$0299,$0298,$0296
- dc.w $0295,$0293,$0292,$0290,$028F,$028D,$028C,$028A
- dc.w $0289,$0287,$0286,$0284,$0282,$0281,$027F,$027E
- dc.w $027C,$027B,$0279,$0278,$0276,$0275,$0273,$0272
- dc.w $0270,$026F,$026D,$026C,$026A,$0269,$0267,$0265
- dc.w $0264,$0262,$0261,$025F,$025E,$025C,$025B,$0259
- dc.w $0258,$0256,$0254,$0253,$0251,$0250,$024E,$024D
- dc.w $024B,$024A,$0248,$0246,$0245,$0243,$0242,$0240
- dc.w $023F,$023D,$023C,$023A,$0238,$0237,$0235,$0234
- dc.w $0232,$0231,$022F,$022D,$022C,$022A,$0229,$0227
- dc.w $0226,$0224,$0223,$0221,$021F,$021E,$021C,$021B
- dc.w $0219,$0218,$0216,$0214,$0213,$0211,$0210,$020E
- dc.w $020D,$020B,$0209,$0208,$0206,$0205,$0203,$0202
- dc.w $0200,$01FE,$01FD,$01FB,$01FA,$01F8,$01F7,$01F5
- dc.w $01F3,$01F2,$01F0,$01EF,$01ED,$01EC,$01EA,$01E8
- dc.w $01E7,$01E5,$01E4,$01E2,$01E1,$01DF,$01DD,$01DC
- dc.w $01DA,$01D9,$01D7,$01D6,$01D4,$01D3,$01D1,$01CF
- dc.w $01CE,$01CC,$01CB,$01C9,$01C8,$01C6,$01C4,$01C3
- dc.w $01C1,$01C0,$01BE,$01BD,$01BB,$01BA,$01B8,$01B6
- dc.w $01B5,$01B3,$01B2,$01B0,$01AF,$01AD,$01AC,$01AA
- dc.w $01A8,$01A7,$01A5,$01A4,$01A2,$01A1,$019F,$019E
- dc.w $019C,$019B,$0199,$0197,$0196,$0194,$0193,$0191
- dc.w $0190,$018E,$018D,$018B,$018A,$0188,$0187,$0185
- dc.w $0184,$0182,$0181,$017F,$017E,$017C,$017A,$0179
- dc.w $0177,$0176,$0174,$0173,$0171,$0170,$016E,$016D
- dc.w $016B,$016A,$0168,$0167,$0165,$0164,$0162,$0161
- dc.w $015F,$015E,$015C,$015B,$0159,$0158,$0156,$0155
- dc.w $0154,$0152,$0151,$014F,$014E,$014C,$014B,$0149
- dc.w $0148,$0146,$0145,$0143,$0142,$0140,$013F,$013E
- dc.w $013C,$013B,$0139,$0138,$0136,$0135,$0133,$0132
- dc.w $0131,$012F,$012E,$012C,$012B,$0129,$0128,$0127
- dc.w $0125,$0124,$0122,$0121,$011F,$011E,$011D,$011B
- dc.w $011A,$0118,$0117,$0116,$0114,$0113,$0111,$0110
- dc.w $010F,$010D,$010C,$010A,$0109,$0108,$0106,$0105
- dc.w $0104,$0102,$0101,$0100,$00FE,$00FD,$00FB,$00FA
- dc.w $00F9,$00F7,$00F6,$00F5,$00F3,$00F2,$00F1,$00EF
- dc.w $00EE,$00ED,$00EB,$00EA,$00E9,$00E7,$00E6,$00E5
- dc.w $00E4,$00E2,$00E1,$00E0,$00DE,$00DD,$00DC,$00DA
- dc.w $00D9,$00D8,$00D7,$00D5,$00D4,$00D3,$00D2,$00D0
- dc.w $00CF,$00CE,$00CC,$00CB,$00CA,$00C9,$00C7,$00C6
- dc.w $00C5,$00C4,$00C3,$00C1,$00C0,$00BF,$00BE,$00BC
- dc.w $00BB,$00BA,$00B9,$00B8,$00B6,$00B5,$00B4,$00B3
- dc.w $00B2,$00B0,$00AF,$00AE,$00AD,$00AC,$00AA,$00A9
- dc.w $00A8,$00A7,$00A6,$00A5,$00A4,$00A2,$00A1,$00A0
- dc.w $009F,$009E,$009D,$009C,$009A,$0099,$0098,$0097
- dc.w $0096,$0095,$0094,$0093,$0092,$0090,$008F,$008E
- dc.w $008D,$008C,$008B,$008A,$0089,$0088,$0087,$0086
- dc.w $0085,$0084,$0083,$0081,$0080,$007F,$007E,$007D
- dc.w $007C,$007B,$007A,$0079,$0078,$0077,$0076,$0075
- dc.w $0074,$0073,$0072,$0071,$0070,$006F,$006E,$006D
- dc.w $006C,$006B,$006A,$0069,$0069,$0068,$0067,$0066
- dc.w $0065,$0064,$0063,$0062,$0061,$0060,$005F,$005E
- dc.w $005D,$005C,$005C,$005B,$005A,$0059,$0058,$0057
- dc.w $0056,$0055,$0055,$0054,$0053,$0052,$0051,$0050
- dc.w $004F,$004F,$004E,$004D,$004C,$004B,$004A,$004A
- dc.w $0049,$0048,$0047,$0046,$0046,$0045,$0044,$0043
- dc.w $0043,$0042,$0041,$0040,$003F,$003F,$003E,$003D
- dc.w $003C,$003C,$003B,$003A,$003A,$0039,$0038,$0037
- dc.w $0037,$0036,$0035,$0035,$0034,$0033,$0033,$0032
- dc.w $0031,$0030,$0030,$002F,$002F,$002E,$002D,$002D
- dc.w $002C,$002B,$002B,$002A,$0029,$0029,$0028,$0028
- dc.w $0027,$0026,$0026,$0025,$0025,$0024,$0023,$0023
- dc.w $0022,$0022,$0021,$0021,$0020,$0020,$001F,$001E
- dc.w $001E,$001D,$001D,$001C,$001C,$001B,$001B,$001A
- dc.w $001A,$0019,$0019,$0018,$0018,$0017,$0017,$0017
- dc.w $0016,$0016,$0015,$0015,$0014,$0014,$0013,$0013
- dc.w $0013,$0012,$0012,$0011,$0011,$0011,$0010,$0010
- dc.w $000F,$000F,$000F,$000E,$000E,$000D,$000D,$000D
- dc.w $000C,$000C,$000C,$000B,$000B,$000B,$000A,$000A
- dc.w $000A,$000A,$0009,$0009,$0009,$0008,$0008,$0008
- dc.w $0008,$0007,$0007,$0007,$0007,$0006,$0006,$0006
- dc.w $0006,$0005,$0005,$0005,$0005,$0004,$0004,$0004
- dc.w $0004,$0004,$0003,$0003,$0003,$0003,$0003,$0003
- dc.w $0002,$0002,$0002,$0002,$0002,$0002,$0002,$0002
- dc.w $0001,$0001,$0001,$0001,$0001,$0001,$0001,$0001
- dc.w $0001,$0001,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
- dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
- dc.w $0001,$0001,$0001,$0001,$0001,$0001,$0001,$0001
- dc.w $0001,$0002,$0002,$0002,$0002,$0002,$0002,$0002
- dc.w $0002,$0003,$0003,$0003,$0003,$0003,$0003,$0004
- dc.w $0004,$0004,$0004,$0004,$0005,$0005,$0005,$0005
- dc.w $0006,$0006,$0006,$0006,$0007,$0007,$0007,$0007
- dc.w $0008,$0008,$0008,$0008,$0009,$0009,$0009,$000A
- dc.w $000A,$000A,$000A,$000B,$000B,$000B,$000C,$000C
- dc.w $000C,$000D,$000D,$000D,$000E,$000E,$000F,$000F
- dc.w $000F,$0010,$0010,$0011,$0011,$0011,$0012,$0012
- dc.w $0013,$0013,$0013,$0014,$0014,$0015,$0015,$0016
- dc.w $0016,$0017,$0017,$0017,$0018,$0018,$0019,$0019
- dc.w $001A,$001A,$001B,$001B,$001C,$001C,$001D,$001D
- dc.w $001E,$001E,$001F,$0020,$0020,$0021,$0021,$0022
- dc.w $0022,$0023,$0023,$0024,$0025,$0025,$0026,$0026
- dc.w $0027,$0028,$0028,$0029,$0029,$002A,$002B,$002B
- dc.w $002C,$002D,$002D,$002E,$002F,$002F,$0030,$0030
- dc.w $0031,$0032,$0033,$0033,$0034,$0035,$0035,$0036
- dc.w $0037,$0037,$0038,$0039,$003A,$003A,$003B,$003C
- dc.w $003C,$003D,$003E,$003F,$003F,$0040,$0041,$0042
- dc.w $0043,$0043,$0044,$0045,$0046,$0046,$0047,$0048
- dc.w $0049,$004A,$004A,$004B,$004C,$004D,$004E,$004F
- dc.w $004F,$0050,$0051,$0052,$0053,$0054,$0055,$0055
- dc.w $0056,$0057,$0058,$0059,$005A,$005B,$005C,$005C
- dc.w $005D,$005E,$005F,$0060,$0061,$0062,$0063,$0064
- dc.w $0065,$0066,$0067,$0068,$0069,$0069,$006A,$006B
- dc.w $006C,$006D,$006E,$006F,$0070,$0071,$0072,$0073
- dc.w $0074,$0075,$0076,$0077,$0078,$0079,$007A,$007B
- dc.w $007C,$007D,$007E,$007F,$0080,$0081,$0083,$0084
- dc.w $0085,$0086,$0087,$0088,$0089,$008A,$008B,$008C
- dc.w $008D,$008E,$008F,$0090,$0092,$0093,$0094,$0095
- dc.w $0096,$0097,$0098,$0099,$009A,$009C,$009D,$009E
- dc.w $009F,$00A0,$00A1,$00A2,$00A4,$00A5,$00A6,$00A7
- dc.w $00A8,$00A9,$00AB,$00AC,$00AD,$00AE,$00AF,$00B0
- dc.w $00B2,$00B3,$00B4,$00B5,$00B6,$00B8,$00B9,$00BA
- dc.w $00BB,$00BC,$00BE,$00BF,$00C0,$00C1,$00C3,$00C4
- dc.w $00C5,$00C6,$00C7,$00C9,$00CA,$00CB,$00CC,$00CE
- dc.w $00CF,$00D0,$00D2,$00D3,$00D4,$00D5,$00D7,$00D8
- dc.w $00D9,$00DA,$00DC,$00DD,$00DE,$00E0,$00E1,$00E2
- dc.w $00E4,$00E5,$00E6,$00E7,$00E9,$00EA,$00EB,$00ED
- dc.w $00EE,$00EF,$00F1,$00F2,$00F3,$00F5,$00F6,$00F7
- dc.w $00F9,$00FA,$00FB,$00FD,$00FE,$0100,$0101,$0102
- dc.w $0104,$0105,$0106,$0108,$0109,$010B,$010C,$010D
- dc.w $010F,$0110,$0111,$0113,$0114,$0116,$0117,$0118
- dc.w $011A,$011B,$011D,$011E,$011F,$0121,$0122,$0124
- dc.w $0125,$0127,$0128,$0129,$012B,$012C,$012E,$012F
- dc.w $0131,$0132,$0133,$0135,$0136,$0138,$0139,$013B
- dc.w $013C,$013E,$013F,$0140,$0142,$0143,$0145,$0146
- dc.w $0148,$0149,$014B,$014C,$014E,$014F,$0151,$0152
- dc.w $0154,$0155,$0156,$0158,$0159,$015B,$015C,$015E
- dc.w $015F,$0161,$0162,$0164,$0165,$0167,$0168,$016A
- dc.w $016B,$016D,$016E,$0170,$0171,$0173,$0174,$0176
- dc.w $0177,$0179,$017A,$017C,$017E,$017F,$0181,$0182
- dc.w $0184,$0185,$0187,$0188,$018A,$018B,$018D,$018E
- dc.w $0190,$0191,$0193,$0194,$0196,$0198,$0199,$019B
- dc.w $019C,$019E,$019F,$01A1,$01A2,$01A4,$01A5,$01A7
- dc.w $01A8,$01AA,$01AC,$01AD,$01AF,$01B0,$01B2,$01B3
- dc.w $01B5,$01B6,$01B8,$01BA,$01BB,$01BD,$01BE,$01C0
- dc.w $01C1,$01C3,$01C4,$01C6,$01C8,$01C9,$01CB,$01CC
- dc.w $01CE,$01CF,$01D1,$01D3,$01D4,$01D6,$01D7,$01D9
- dc.w $01DA,$01DC,$01DD,$01DF,$01E1,$01E2,$01E4,$01E5
- dc.w $01E7,$01E8,$01EA,$01EC,$01ED,$01EF,$01F0,$01F2
- dc.w $01F3,$01F5,$01F7,$01F8,$01FA,$01FB,$01FD,$01FE
-
- ;-------------------------------------------------------------------------
- ; CHIPMEM DATA
- ;-------------------------------------------------------------------------
-
- SECTION "ChipBSS",BSS_C
-
- Blanks: ds.b 256 ; 256 null-bytes
-
- StarBuffer1: ds.b 2*BUFW*BUFH ; Starfield buffers
- StarBuffer2: ds.b 2*BUFW*BUFH
- StarBuffer3: ds.b 2*BUFW*BUFH
-
- ;-------------------------------------------------------------------------
- ; COPPERLIST
- ;-------------------------------------------------------------------------
-
- SECTION "ChipData",DATA_C
-
- CopperList: dc.w $008E,$2471,$0090,$34D1 ; Display area
- dc.w $0092,$0030,$0094,$00D8
-
- CopSprites: dc.w $0120,$0000,$0122,$0000 ; Sprite-pointers
- dc.w $0124,$0000,$0126,$0000
- dc.w $0128,$0000,$012A,$0000
- dc.w $012C,$0000,$012E,$0000
- dc.w $0130,$0000,$0132,$0000
- dc.w $0134,$0000,$0136,$0000
- dc.w $0138,$0000,$013A,$0000
- dc.w $013C,$0000,$013E,$0000
-
- IFNE DTIME ; Palette
- dc.w $0182,$0000
- ELSE
- dc.w $0180,$0000
- ENDC
- dc.w $0182,$0EEF
- dc.w $0184,$0778
- dc.w $0186,$0EEF
-
- dc.w $0102,$0000
- dc.w $0108,$002C,$010A,$002C ; Modulos
- CopBplPtr: dc.w $00E0,$0000,$00E2,$0000 ; Bitplane-pointers
- dc.w $00E4,$0000,$00E6,$0000
-
- dc.w $2407,$FFFE,$0100,$2200 ; Turn on planes on line $24
-
- dc.w $FFDF,$FFFE ; Wait for line $100
-
- dc.w $3407,$FFFE,$0100,$0000 ; Turn off planes on line $134
- dc.w $FFFF,$FFFE
-
- ;-----------------------------------------------------------------------------
-
-